package Controleur;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import DAO.DAOLocation;
import DAO.DAOStationnement;
import Modele.Client;
import Modele.Location;
import Modele.Station;
import Modele.Stationnement;
import Vue.RendreVelo;

/** Définit l'écouteur du bouton de rendu d'un vélo */
public class RendreVeloBtnValiderListener implements ActionListener {

	/** La vue de rendu d'un vélo */
	RendreVelo vueRendreVelo;

	/**
	 * Instancie l'écouteur
	 * 
	 * @param vueRendreVelo
	 *            La vue de rendu d'un vélo
	 */
	public RendreVeloBtnValiderListener(RendreVelo vueRendreVelo) {
		this.vueRendreVelo = vueRendreVelo;
	}

	/**
	 * Action lors de l'évenement
	 * 
	 * @param e
	 *            Objet de l'évenement
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		// LE bouton valider, action de la location du vélo ! Recup les deux
		// comboBox
		Client client = (Client) vueRendreVelo.getComboBoxClient()
				.getSelectedItem();
		Station station = (Station) vueRendreVelo.getComboBoxStation()
				.getSelectedItem();

		Location loc = client.getLocationActuelle();
		String d = new SimpleDateFormat("yyyy-MM-dd").format(Calendar
				.getInstance().getTime());
		if (loc != null) {
			loc.setIdStationFin(station.getIdStation());
			loc.setDateDeFin(Date.valueOf(d));
			DAOLocation.updateLocation(loc);
		}
		Stationnement newStat = new Stationnement(loc.getVelo().getIdVelo(),
				station.getIdStation(), Date.valueOf(d), (Date) null);
		DAOStationnement.insertStationnement(newStat);

		vueRendreVelo.close();

	}

}
